package com.itany.mp.config;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;

/**
 * @author 石小俊
 * 代码生成器
 */
public class CodeGenerator {

    public static void main(String[] args) {
        String url = "jdbc:mysql://127.0.0.1:3306/mp?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC";
        FastAutoGenerator.create(url, "root", "root")
                // 全局配置
                .globalConfig(builder -> builder
                        // 作者
                        .author("石小俊")
                        // 设置生成的代码所存放的位置
                        .outputDir("E:/code")
                        .commentDate("yyyy年MM月dd日"))
                .packageConfig(builder -> builder
                        // 设置父包名
                        .parent("com.itany.mp")
                        // 设置实体类所在的包
                        .entity("entity")
                        // 设置Mapper接口所在的包
                        .mapper("mapper")
                        // 设置service接口所在的包
                        .service("service")
                        // 设置service实现类所在的包
                        .serviceImpl("serivce.impl")
                        // 设置xml所在的目录
                        .xml("mapper.xml"))
                // 策略配置
                .strategyConfig(builder -> builder
                        // 默认生成所有的表的代码,可以指定生成哪些表
                        .addInclude("user", "t_emp", "t_dept")
                        // 在某些表进行命名的时候,我们以t_xxx进行命名的
                        // 但是我们不希望生成的代码带有t_
                        // 因此可以指定过滤的前缀
                        .addTablePrefix("t_")
                        .entityBuilder()
                        .enableLombok()
                        .idType(IdType.AUTO))
                .templateEngine(new FreemarkerTemplateEngine())
                .execute();
    }

}
